package br.com.games.daedal;

import br.com.games.hefesto.Team;

/**
 * Definição de um quadrado do jogo 
 * @see {@link Vertex}
 * @since 2013
 * @author <li><em>fernando.schindler@gmail.com</em></li>
 */
public interface Box {
	/**
	 * Validar se esse caixa já foi fechada
	 * @return
	 */
	Team getOwner();

	/**
	 * Indicará quantos pontos valem essa caixa
	 * @return 
	 */
	Short getValue();
	
	/**
	 * Indica que todos os lados foram fechados
	 * @return
	 */
	Boolean isClosed();

	/**
	 * 
	 * @param team
	 */
	void setOwener(Team team);
	
	/**
	 * Criar um novo valor para esse box
	 */
	void reset();
	
	/**
	 * 
	 * @return
	 */
	Vertex [] getVertexes();
}